package com.devg.file.web.file.service;

import com.devg.file.web.base.model.ResultModel;
import java.util.Map;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;

public interface FileService {

  /**
   * @param file 上传文件
   * @param bucketName 桶名称
   * @return
   */
  Map<String, Object> baseUploadFile(MultipartFile file, String bucketName) throws Exception;


  /**
   * @param file 上传文件
   * @param bucketName 桶名称
   * @param isRandomFileName 是否随机文件名
   * @return
   */
  Map<String, Object> baseUploadFile(MultipartFile file, String bucketName, boolean isRandomFileName) throws Exception;

  /**
   * 文件同步上传
   *
   * @param file
   * @param fileId
   * @param filePath
   * @return
   */
  Map<String, Object> uploadFileSync(MultipartFile file, String fileId, String filePath) throws Exception;


  /**
   * 文件刪除
   *
   * @param filePath
   * @return
   */
  Map<String, Object> deleteFile(String filePath) throws Exception;


  /**
   * 文件列表
   *
   * @param params
   * @return
   */
  ResultModel list(Map<String, Object> params);

  /**
   * 同步配置内容
   *
   * @param params
   * @return
   */
  ResultModel syncConfigList(Map<String, Object> params);

  /**
   * 同步配置
   *
   * @param params
   * @return
   */
  ResultModel syncConfigSet(Map<String, Object> params);
}
